package com.elder.business.service;


import com.alibaba.fastjson2.JSONObject;
import com.elder.business.domain.MemberLeaveRecord;
import com.elder.business.domain.MemberLeaveRecordDTO;
import com.elder.common.core.page.TableDataInfo;

import java.util.List;

/**
 * 员工请假Service接口
 * 
 * @author elder
 * @date 2024-04-13
 */
public interface IMemberLeaveRecordService 
{
    /**
     * 查询员工请假
     * 
     * @param memberId 员工请假主键
     * @return 员工请假
     */
    public JSONObject selectMemberLeaveRecordByLeaveId(Long memberId);

    /**
     * 查询员工请假列表
     * 
     * @param memberLeaveRecord 员工请假
     * @return 员工请假集合
     */
    public List<MemberLeaveRecord> selectMemberLeaveRecordList(MemberLeaveRecord memberLeaveRecord);

    /**
     * 新增员工请假
     * 
     * @param memberLeaveRecord 员工请假
     * @return 结果
     */
    public int insertMemberLeaveRecord(MemberLeaveRecordDTO memberLeaveRecord);

    /**
     * 修改员工请假
     * 
     * @param memberLeaveRecord 员工请假
     * @return 结果
     */
    public int updateMemberLeaveRecord(MemberLeaveRecord memberLeaveRecord);

    /**
     * 批量删除员工请假
     * 
     * @param memberIds 需要删除的员工请假主键集合
     * @return 结果
     */
    public int deleteMemberLeaveRecordByLeaveIds(Long[] memberIds);

    /**
     * 删除员工请假信息
     * 
     * @param memberId 员工请假主键
     * @return 结果
     */
    public int deleteMemberLeaveRecordByLeaveId(Long memberId);

    TableDataInfo getMemberLeaveRecordList(String memberName,String startTime, String endTime, String status, Integer pageNum, Integer pageSize);

    TableDataInfo getOneMemberLeaveRecordList(Long userId,String startTime, String endTime, String status, Integer pageNum, Integer pageSize);

    int approvalMemberLeave(Long leaveId, Long memberId, String status, String notes);
}
